function editStep(id) {
	/*
	 * var p1 = new Ext.FormPanel({ title : '环节参与人', border : true, html : '<div
	 * style="padding:5px;"><a href="javascript:void(0);" title="设置环节参与人"
	 * onclick="javascript:setRange();"><img src="' + context +
	 * '/system/workflow/images/addrange.png' + '' + '"/></a></div>' + '<div
	 * id="objrange" style="width:600px;padding:5px;"></div>' });
	 */

	var p2 = new Ext.FormPanel({
		title : '事件处理器',
		border : true,
		html : '<div style="padding:5px;"><a href="javascript:void(0);" title="增加处理器定义" onclick="javascript:addPlug();"><img src="'
				+ context
				+ '/system/workflow/images/addplug.jpg"/></a></div>'
				+ '<div id="plugarea" style="padding:5px;"></div>'
	});

	var radioGroup = new Ext.form.RadioGroup({
		fieldLabel : "多人办理", // RadioGroup.fieldLabel 标签与
		// Radio.boxLabel 标签区别
		width : "200",
		hideLabel : false, // 隐藏RadioGroup标签
		items : [new Ext.form.Radio({ // 三个必须项
					id : "ipara0",
					boxLabel : "否", // Radio标签
					name : "ipara", // 用于form提交时传送的参数名
					inputValue : "0", // 提交时传送的参数值
					listeners : {
						check : function(checkbox, checked) { // 选中时,调用的事件
							if (checked) {
								form.getForm().findField("iparavalue")
										.disable();
							}
						}
					}
				}), new Ext.form.Radio({ // 以上相同
					id : "ipara1",
					boxLabel : "是",
					name : "ipara",
					inputValue : "1",
					listeners : {
						check : function(checkbox, checked) {
							if (checked) {
								form.getForm().findField("iparavalue").enable();
								if (form.getForm().findField("iparavalue")
										.getValue() == '') {
									form.getForm().findField("iparavalue")
											.setValue(2);
								}
							}
						}
					}
				})]
	});

	var radioGroup2 = new Ext.form.RadioGroup({
				fieldLabel : "过渡环节", // RadioGroup.fieldLabel 标签与
				// Radio.boxLabel 标签区别
				width : "200",
				items : [new Ext.form.Radio({ // 三个必须项
					id : "itrans0",
					name : "itrans",
					// checked : true, // 设置当前为选中状态,仅且一个为选中.
					boxLabel : "否", // Radio标签
					inputValue : "0", // 提交时传送的参数值
					listeners : {
						check : function(checkbox, checked) { // 选中时,调用的事件
							if (checked) {
								// form.getForm().getValues()["ipara"]
								form.getForm().findField("itrans")
										.setValue('0');
							}
						}
					}
				}), new Ext.form.Radio({ // 以上相同
					id : "itrans1",
					name : "itrans",
					boxLabel : "是",
					inputValue : "1",
					listeners : {
						check : function(checkbox, checked) {
							if (checked) {
								form.getForm().findField("itrans")
										.setValue('1');
							}
						}
					}
				})]
			})

	var radioGroup3 = new Ext.form.RadioGroup({
				fieldLabel : "会签环节", // RadioGroup.fieldLabel 标签与
				// Radio.boxLabel 标签区别
				width : "200",
				items : [new Ext.form.Radio({ // 三个必须项
							id : "iinner0",
							name : "iinner",
							// checked : true, // 设置当前为选中状态,仅且一个为选中.
							boxLabel : "否", // Radio标签
							inputValue : "0", // 提交时传送的参数值
							listeners : {
								check : function(checkbox, checked) { // 选中时,调用的事件

								}
							}
						}), new Ext.form.Radio({ // 以上相同
							id : "iinner1",
							name : "iinner",
							boxLabel : "是",
							inputValue : "1",
							listeners : {
								check : function(checkbox, checked) {

								}
							}
						})]
			});

	var radioGroup4 = new Ext.form.RadioGroup({
				fieldLabel : "组相关性", // RadioGroup.fieldLabel 标签与
				// Radio.boxLabel 标签区别
				width : "200",
				items : [new Ext.form.Radio({ // 三个必须项
							id : "iscorr0",
							name : "iscorr",
							// checked : true, // 设置当前为选中状态,仅且一个为选中.
							boxLabel : "否", // Radio标签
							inputValue : "0", // 提交时传送的参数值
							listeners : {
								check : function(checkbox, checked) { // 选中时,调用的事件

								}
							}
						}), new Ext.form.Radio({ // 以上相同
							id : "iscorr1",
							name : "iscorr",
							boxLabel : "是",
							inputValue : "1",
							listeners : {
								check : function(checkbox, checked) {

								}
							}
						})]
			});

	var radioGroup5 = new Ext.form.RadioGroup({
				fieldLabel : "传阅文件", // RadioGroup.fieldLabel 标签与
				// Radio.boxLabel 标签区别
				width : "200",
				items : [new Ext.form.Radio({ // 三个必须项
							id : "icc0",
							name : "icc",
							// checked : true, // 设置当前为选中状态,仅且一个为选中.
							boxLabel : "否", // Radio标签
							inputValue : "0", // 提交时传送的参数值
							listeners : {
								check : function(checkbox, checked) { // 选中时,调用的事件

								}
							}
						}), new Ext.form.Radio({ // 以上相同
							id : "icc1",
							name : "icc",
							boxLabel : "是",
							inputValue : "1",
							listeners : {
								check : function(checkbox, checked) {

								}
							}
						})]
			});
	
	var radioGroup6 = new Ext.form.RadioGroup({
				fieldLabel : "特送", // RadioGroup.fieldLabel 标签与
				// Radio.boxLabel 标签区别
				width : "200",
				items : [new Ext.form.Radio({ // 三个必须项
							id : "isd0",
							name : "isd",
							// checked : true, // 设置当前为选中状态,仅且一个为选中.
							boxLabel : "否", // Radio标签
							inputValue : "0", // 提交时传送的参数值
							listeners : {
								check : function(checkbox, checked) { // 选中时,调用的事件

								}
							}
						}), new Ext.form.Radio({ // 以上相同
							id : "isd1",
							name : "isd",
							boxLabel : "是",
							inputValue : "1",
							listeners : {
								check : function(checkbox, checked) {

								}
							}
						})]
			});		

	var chkGroup = new Ext.form.CheckboxGroup({
				fieldLabel : '稿签处理', // RadioGroup.fieldLabel 标签与
				// Radio.boxLabel 标签区别
				width : "200",
				items : [new Ext.form.Checkbox({ // 三个必须项
							id : "chk0",
							name : "chk0",
							boxLabel : "套红", // Radio标签
							inputValue : "0", // 提交时传送的参数值
							listeners : {
								check : function(checkbox, checked) { // 选中时,调用的事件
									if (checked) {
										form.getForm().findField('ired')
												.setValue('1');
									} else {
										form.getForm().findField('ired')
												.setValue('0');
									}
								}
							}
						}), new Ext.form.Checkbox({ // 以上相同
							id : "chk1",
							name : "chk1",
							boxLabel : "盖章",
							inputValue : "1",
							listeners : {
								check : function(checkbox, checked) {
									if (checked) {
										form.getForm().findField('istamp')
												.setValue('1');
									} else {
										form.getForm().findField('istamp')
												.setValue('0');
									}
								}
							}
						}), new Ext.form.Checkbox({ // 以上相同
							id : "chk2",
							name : "chk2",
							boxLabel : "打印",
							inputValue : "2",
							listeners : {
								check : function(checkbox, checked) {
									if (checked) {
										form.getForm().findField('iprint')
												.setValue('1');
									} else {
										form.getForm().findField('iprint')
												.setValue('0');
									}
								}
							}
						})]
			});

	var form = new Ext.FormPanel({
				frame : true,
				title : '基本信息',
				monitorValid : true,// 把有formBind:true的按钮和验证绑定
				layout : "form",
				labelAlign : "left",
				border : false,
				autoScroll : true,
				labelWidth : 100, // label settings here cascade unless
				// overridden
				frame : false,
				bodyStyle : 'padding:5px 5px 0',
				width : 550,
				defaults : {
					width : 400
				},
				defaultType : 'textfield',
				items : [{
							fieldLabel : '工作流程',
							name : 'gname',
							maxLength : 25,
							disabled : true
						}, {
							fieldLabel : '流转对象',
							name : 'oname',
							maxLength : 25,
							disabled : true
						}, {
							fieldLabel : '运行系统',
							name : 'surportName',
							maxLength : 25,
							disabled : true
						}, {
							fieldLabel : '环节名称',
							name : 'iname',
							maxLength : 25,
							allowBlank : false
						}, {
							fieldLabel : '环节说明',
							xtype : 'textarea',
							id : 'imemo',
							name : 'imemo',
							maxLength : 200,
							height : 40
						}, {
							fieldLabel : '环节类型',
							name : 'itypename',
							disabled : true
						}, {
							xtype : 'hidden',
							name : 'sid'
						}, {
							xtype : 'hidden',
							name : 'itrans'
						}, {
							xtype : 'hidden',
							id : 'irangetype',
							name : 'irangetype',
							value : '1'
						}, {
							xtype : 'hidden',
							id : 'isroleid',
							name : 'isroleid'
						}, {
							xtype : 'hidden',
							id : 'isrolename',
							name : 'isrolename'
						}, {
							xtype : 'hidden',
							name : 'ired'
						}, {
							xtype : 'hidden',
							name : 'istamp'
						}, {
							xtype : 'hidden',
							name : 'iprint'
						}]
			});

	form.getForm().load({
		url : context + '/system/flowmanage.do?method=editstep',
		params : {
			id : id
		},
		waitTitle : '提示',
		waitMsg : '正在加载数据,请稍候...',
		animEl : "loding",
		success : function(form1, action) {
			var plug = action.result.data.plug;
			for (var i = 0; i < plug.length; i++) {
				addPlug4Edit(plug[i].tp, plug[i].clzName);
			}

			if (action.result.data.itype != '-1') {
				var role = getRoleSingleSelectComboK('参与人', 'isroleid',
						'isrolename', null, action.result.data.isrolename,
						false);
				form.add(role);
				form.doLayout();
			}

			if (action.result.data.itype == '1') {
				/*
				 * form.add(getWBComboStore('inner-type', '', 'inner_',
				 * '分支流转环节', 'iinner', action.result.data.innername, '0'));
				 */

				form.add(radioGroup4);
				form.add(radioGroup2);
				// form.add(radioGroup);
				form.add(radioGroup3);
				form.add(radioGroup5);
				form.add(radioGroup6);
				form.add(chkGroup);

				/*
				 * form.add({ xtype : 'numberfield', fieldLabel : '最少办理人数',
				 * allowBlank : false, allowDecimals : false, // 允许小数点
				 * allowNegative : false, // 允许负数 blankText : '不能为空', disabled :
				 * action.result.data.ipara == 0, name : 'iparavalue', value :
				 * action.result.data.iparavalue, listeners : { blur :
				 * function() { validParaValue(this) } } });
				 */
				if (action.result.data.iinner == 0) {
					Ext.getCmp('iinner0').checked = true;
				} else {
					Ext.getCmp('iinner1').checked = true;
				}

				if (action.result.data.ipara == 0) {
					Ext.getCmp('ipara0').checked = true;
				} else {
					Ext.getCmp('ipara1').checked = true;
				}

				if (action.result.data.itrans == 0) {
					Ext.getCmp('itrans0').checked = true;
				} else {
					Ext.getCmp('itrans1').checked = true;
				}

				if (action.result.data.iscorr == 0) {
					Ext.getCmp('iscorr0').checked = true;
				} else {
					Ext.getCmp('iscorr1').checked = true;
				}

				if (action.result.data.icc == 0) {
					Ext.getCmp('icc0').checked = true;
				} else {
					Ext.getCmp('icc1').checked = true;
				}

				if (action.result.data.ired == 1) {
					Ext.getCmp('chk0').checked = true;
				} else {
					Ext.getCmp('chk0').checked = false;
				}
				
				if (action.result.data.istamp == 1) {
					Ext.getCmp('chk1').checked = true;
				} else {
					Ext.getCmp('chk1').checked = false;
				}
				
				if (action.result.data.iprint == 1) {
					Ext.getCmp('chk2').checked = true;
				} else {
					Ext.getCmp('chk2').checked = false;
				}
				
				if (action.result.data.isd == 0) {
					Ext.getCmp('isd0').checked = true;
				} else {
					Ext.getCmp('isd1').checked = true;
				}

				form.doLayout();
			}
		},
		failure : function(form, action) {
			Ext.Msg.alert('提示', '读取流程环节信息失败');
		}
	});

	var win = new Ext.Window({
				id : 'stepEditWin',
				renderTo : Ext.getBody(),
				layout : 'accordion',
				title : '流程环节信息编辑',
				width : 600,
				height : 400,
				plain : true,
				modal : true,
				maximizable : false,
				items : [form, p2],

				buttons : [{
					id : 'stepUpdateButton',
					text : '提 交',
					handler : function() {
						if (form.getForm().isValid()) {
							Ext.getCmp('stepUpdateButton').setDisabled(true);
							Ext.MessageBox.wait('提交保存过程中...');

							form.getForm().submit({
								url : context
										+ '/system/flowmanage.do?method=updatestep',
								method : "POST",
								params : {
									iplugxml : initPlugXML()
								},
								success : function(form, action) {
									Ext.MessageBox.hide();
									Ext.Msg.alert('提示', '已成功修改流程环节信息！');
									plugcount = 0;

									if (Ext.getCmp('steplist')) {
										Ext.getCmp('steplist').getStore()
												.reload();
									}

									win.close();
									win = null;
								},
								failure : function(form, action) {
									Ext.MessageBox.hide();
									Ext.getCmp('stepUpdateButton')
											.setDisabled(false);

									Ext.Msg.alert('提示', '提交更新流程环节信息发生错误！');
								}
							});
						}
					}
				}, {
					text : '关 闭',
					handler : function() {
						win.close();
						win = null;
					}
				}]
			});

	win.show(this);
}

function validParaValue(thizz) {
	// /alert(thizz.getValue());
}

var plugcount = 0;

/**
 * 添加插件定义
 */
function addPlug() {
	var div = document.createElement('div');
	div.id = 'plugdiv_' + plugcount;
	div.style.cssText = 'padding:5px;';
	div.setAttribute("count", plugcount);

	var selName = 'plugtype_' + plugcount;
	var iptName = 'plugClasName_' + plugcount;

	var typeText = document.createTextNode('类别 ');

	div.appendChild(typeText);

	var sel = document.createElement('select');
	sel.id = selName;
	sel.className = 'x-form-select-one';
	sel.setAttribute('iptName', iptName);
	sel.options[0] = new Option('数据导入', 'import');
	sel.options[1] = new Option('数据导出', 'export');
	sel.options[2] = new Option('事件开始前', 'intro');
	sel.options[3] = new Option('事件结束后', 'outro');

	div.appendChild(sel);

	var classText = document.createTextNode(' 类名称 ');

	div.appendChild(classText);

	var ipt = document.createElement('input');
	ipt.type = 'text';
	ipt.title = '定义插件类名称';
	ipt.className = 'x-form-text x-form-field';
	ipt.style.cssText = 'width:300px;';
	ipt.id = iptName;
	ipt.value = '';

	div.appendChild(ipt);

	var img = document.createElement('img');
	img.src = context + '/system/workflow/images/delete.png';
	img.style.cssText = 'cursor:hand;padding-left: 5px;';
	img.setAttribute("divid", div.id);
	img.title = '删除';
	img.onclick = function() {
		if ($(this.getAttribute('divid'))) {
			$(this.getAttribute('divid')).parentNode.removeChild($(this
					.getAttribute('divid')));
		}
	}
	div.appendChild(img);

	Ext.get('plugarea').dom.appendChild(div);

	plugcount++;
}

/**
 * 编辑插件
 */
function addPlug4Edit(tp, clzName) {
	var div = document.createElement('div');
	div.id = 'plugdiv_' + plugcount;
	div.style.cssText = 'padding:5px;';
	div.setAttribute("count", plugcount);

	var selName = 'plugtype_' + plugcount;
	var iptName = 'plugClasName_' + plugcount;

	var typeText = document.createTextNode('类别 ');

	div.appendChild(typeText);

	var sel = document.createElement('select');
	sel.id = selName;
	sel.className = 'x-form-select-one';
	sel.setAttribute('iptName', iptName);
	sel.options[0] = new Option('数据导入', 'import');
	if (tp == 'import') {
		sel.options[0].selected = true;
	}
	sel.options[1] = new Option('数据导出', 'export');
	if (tp == 'export') {
		sel.options[1].selected = true;
	}
	sel.options[2] = new Option('事件开始前', 'intro');
	if (tp == 'intro') {
		sel.options[2].selected = true;
	}
	sel.options[3] = new Option('事件结束后', 'outro');
	if (tp == 'export') {
		sel.options[3].selected = true;
	}

	div.appendChild(sel);

	var classText = document.createTextNode(' 类名称 ');

	div.appendChild(classText);

	var ipt = document.createElement('input');
	ipt.type = 'text';
	ipt.title = '定义插件类名称';
	ipt.className = 'x-form-text x-form-field';
	ipt.style.cssText = 'width:300px;';
	ipt.id = iptName;
	ipt.value = clzName;

	div.appendChild(ipt);

	var img = document.createElement('img');
	img.src = context + '/system/workflow/images/delete.png';
	img.style.cssText = 'cursor:hand;padding-left: 5px;';
	img.setAttribute("divid", div.id);
	img.title = '删除';
	img.onclick = function() {
		if ($(this.getAttribute('divid'))) {
			$(this.getAttribute('divid')).parentNode.removeChild($(this
					.getAttribute('divid')));
		}
	}
	div.appendChild(img);

	Ext.get('plugarea').dom.appendChild(div);

	plugcount++;
}

var plugxml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><plugs>";

/**
 * 初始化插件xml脚本
 * 
 * @return {}
 */
function initPlugXML() {
	var str = plugxml;

	for (var i = 0; i < $("plugarea").childNodes.length; i++) {
		if ($("plugarea").childNodes[i].nodeName == "DIV") {
			var idx = $("plugarea").childNodes[i].getAttribute("count");
			str += "<plug type=\"" + Ext.get("plugtype_" + idx).dom.value
					+ "\" className=\""
					+ Ext.get("plugClasName_" + idx).dom.value + "\"/>";
		}
	}

	str += "</plugs>";

	return str;
}

function setRange() {
	var win = new Ext.Window({
				id : 'stepRangeWin',
				renderTo : Ext.getBody(),
				layout : 'fit',
				title : '环节参与人设置',
				width : 500,
				height : 400,
				plain : true,
				modal : true,
				maximizable : false,
				items : [],

				buttons : [{
							id : 'stepRangeUpdateButton',
							text : '提 交',
							handler : function() {

							}
						}, {
							text : '关 闭',
							handler : function() {
								win.close();
								win = null;
							}
						}]
			});

	win.show(this);
}